package org.datascooter.inface;

import java.util.List;

import org.datascooter.bundle.EntityBundle;
import org.datascooter.exception.EntityNotMappedException;
import org.datascooter.impl.DataSnip;

/**
 * Interface for holder all of mapping information
 * 
 * @author nemo
 * 
 */
public interface IEntityMapper {

	public EntityBundle getBundle(Object obj) throws EntityNotMappedException;

	public void addBundle(String bundleKey, EntityBundle bundle);

	public void addBundleProvider(IBundleProvider provider);

	public String getId(String entity) throws EntityNotMappedException;

	public Object getIdValue(Object obj) throws EntityNotMappedException;

	public List<EntityBundle> getBundleList();

	public void clear();

	public void explore() throws Exception;

	public void setBundleProviders(IBundleProvider[] bundleProviders);

	public DataSnip getSnipFromDataSet(String entity, Object... fields) throws EntityNotMappedException;
}